import("//llvm/utils/gn/build/compiled_action.gni")

compiled_action("Confusables.inc") {
  tool = "ConfusableTable:clang-tidy-confusable-chars-gen"
  inputs = [ "ConfusableTable/confusables.txt" ]
  outputs = [ "$target_gen_dir/$target_name" ]
  args = [
    rebase_path(inputs[0], root_build_dir),
    rebase_path(outputs[0], root_build_dir),
  ]
}

static_library("misc") {
  output_name = "clangTidyMiscModule"
  configs += [ "//llvm/utils/gn/build:clang_code" ]
  include_dirs = [ target_gen_dir ]
  deps = [
    ":Confusables.inc",
    "//clang-tools-extra/clang-tidy",
    "//clang-tools-extra/clang-tidy/utils",
    "//clang/lib/AST",
    "//clang/lib/ASTMatchers",
    "//clang/lib/Analysis",
    "//clang/lib/Basic",
    "//clang/lib/Lex",
    "//clang/lib/Serialization",
    "//clang/lib/Tooling",
    "//llvm/lib/Support",
  ]
  sources = [
    "ConfusableIdentifierCheck.cpp",
    "ConstCorrectnessCheck.cpp",
    "DefinitionsInHeadersCheck.cpp",
    "MiscTidyModule.cpp",
    "MisleadingBidirectional.cpp",
    "MisleadingIdentifier.cpp",
    "MisplacedConstCheck.cpp",
    "NewDeleteOverloadsCheck.cpp",
    "NoRecursionCheck.cpp",
    "NonCopyableObjects.cpp",
    "NonPrivateMemberVariablesInClassesCheck.cpp",
    "RedundantExpressionCheck.cpp",
    "StaticAssertCheck.cpp",
    "ThrowByValueCatchByReferenceCheck.cpp",
    "UnconventionalAssignOperatorCheck.cpp",
    "UniqueptrResetReleaseCheck.cpp",
    "UnusedAliasDeclsCheck.cpp",
    "UnusedParametersCheck.cpp",
    "UnusedUsingDeclsCheck.cpp",
    "UseAnonymousNamespaceCheck.cpp",
  ]
}
